import axios from 'axios'
import store from '@/store/index'
// 处理401
import router from '@/router'
// 创建axios实例，指定baseURL（请求基地址）,timeout(最长等待时间)
const instance = axios.create({
  baseURL: 'http://pcapi-xiaotuxian-front-devtest.itheima.net/',
  // baseURL: 'https://apipc-xiaotuxian-front.itheima.net',
  timeout: 5000
})
// 响应拦截器
instance.interceptors.response.use(
  data => data.data, // 请求成功
  error => {
    console.dir(error)
    if (error.response.status === 401) {
      console.log('token 错误')
      // 清空本地个人信息
      store.commit('user/setUser', {})
      // 跳到登录页
      router.push('/login?return_url=' + encodeURIComponent(router.currentRoute.value.fullPath))
    }
    return Promise.reject(error)
  }
)
// 请求拦截器。注入token
instance.interceptors.request.use(
  config => {
    // console.log('store', store)
    // 如何在.js中获取vuex中的token
    // import store from '@/store'
    const token = store.state.user.profile.token
    if (token) {
      // 设置请求头
      config.headers.Authorization = `Bearer ${token}`
    }
    // if(有就带上)
    return config
  }
)
export default function (url, method, paramsDate) {
  // ES6的动态属性名（三元）
  const key = method === 'get' ? 'params' : 'data'
  return instance({
    url,
    method,
    [key]: paramsDate
  })
  // if (method === 'get') {
  //   instance({
  //     url,
  //     method: method,
  //     params: paramsDate
  //   })
  // } else {
  //   instance({
  //     url,
  //     method: method,
  //     data: paramsDate
  //   })
  // }
}
